import request from "@/utils/request.js";
const PORT1 = "/api";

/**
 * 插入数据
 * @param {*} tableName  表名或者叫根路由名
 * @param {*} params  参数
 * @returns
 */
export function Create(tableName, params) {
  return request(PORT1 + `/${tableName}/DoCreate`, "POST", params, true);
}

/**
 * 删除单条数据
 * @param {*} tableName  表名或者叫根路由名
 * @param {*} params   参数  ，基本都是传   {id:  xxx  }
 * @returns
 */
export function Del(tableName, params) {
  return request(PORT1 + `/${tableName}/doDelete`, "POST", params, true);
}

/**
 * 以上方法的改版 删除单条数据
 * @param {*} tableName  表名或者叫根路由名
 * @param {*} params 参数,这里对上面做了优化，只需要传个id过来就行
 * @returns
 */
export function DelById(tableName, id) {
  return request(PORT1 + `/${tableName}/doDelete`, "POST", { id }, true);
}

/**
 * 更新单条数据
 * @param {*} tableName 表名或者叫根路由名
 * @param {*} params 参数，一般都是整条记录的json
 * @returns
 */
export function Update(tableName, params) {
  return request(PORT1 + `/${tableName}/doEdit`, "POST", params, true);
}

/**
 * 查询数据，返回一个列表 当然也可
 * @param {*} tableName 表名或者叫根路由名
 * @param {*} params 参数，默认是返回所有   可以添加其他字段作为查询条件，如查询id  为666的记录 ，name为hhh的某记录 {
	pageNum: 1,
	pageSize: 9999,
	id: 666, //这个就是自定义的过滤条件
	name :"hhh"
}   该api 偶尔也可以用来GetEdit , 从返回的 数组中取第一条就行
 * @returns 
 */
export function GetList(
  tableName,
  params = {
    pageNum: 1,
    pageSize: 9999,
  }
) {
  return request(PORT1 + `/${tableName}/GetPageList`, "POST", params, false);
}

/**
 * 查询单条
 * @param {*} tableName  表名或者叫根路由名
 * @param {*} params json 对象 ，格式一般为  {id: xxx}
 * @returns
 */
export function GetEdit(tableName, params) {
  return request(PORT1 + `/${tableName}/GetEdit`, "POST", params, true);
}

/**
 * 查询单条
 * @param {*} tableName  表名或者叫根路由名
 * @param {*} params  记录id
 * @returns
 */
export function GetEditById(tableName, id) {
  return request(PORT1 + `/${tableName}/GetEdit`, "POST", { id }, true);
}

/**
 * 自定义API
 * @param {*} tableName   表名或者叫根路由名
 * @param {*} route  最后一级路由
 * @param {*} params 参数
 * @param {*} isJson   是否是json  ，默认是
 * @returns
 */
export function CustomApi(tableName, route, params, isJson = true) {
  return request(PORT1 + `/${tableName}/${route}`, "POST", params, isJson);
}
